<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<p>
			什么是WebSQL？<br>
			HTML5本地存储——Web SQL Database<br>
			在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage，这两个是以键值对存储的解决方案，<br>
			存储少量数据结构很有用，但是对于大量结构化数据就无能为力了，灵活大不够强大。<br>
			Web SQL Database----我们经常在数据库中处理大量结构化数据，html5引入Web SQL Database概念，它使用 SQL 来操纵客户端数据库的 API，这些 API 是异步的，<br>
			三个核心方法<br>
			现在W3C力推的IndexedDB做比较，看看为什么要废弃这种方案。Web SQL Database 规范中定义的三个核心方法：<br>
			openDatabase：这个方法使用现有数据库或新建数据库来创建数据库对象<br>
			transaction：这个方法允许我们根据情况控制事务提交或回滚<br>
			executeSql：这个方法用于执行SQL 查询<br>		
		</p>
		<p>
			jQuery 的属性拷贝(extend)的实现原理是什么，如何实现深拷贝？<br>
			我看jQuery的api，clone(true) 元素以及其所有的事件处理并且选中这些克隆的副本<br>
			描述:创建一个按钮，他可以复制自己，并且他的副本也有同样功能。<br>
			HTML 代码:<br>
			<span>< button >Clone Me!< /button ></span><br>
			jQuery 代码:<br>
			$("button").click(function(){<br>
			  $(this).clone(true).insertAfter(this);<br>
			});<br>
		</p>
		<p>
			谈一下Jquery中的bind(),live(),delegate(),on()的区别？<br>
			用法:<br>
			bind(type,[data],fn) 为每个匹配元素的特定事件绑定事件处理函数<br>
			live(type,[data],fn) 给所有匹配的元素附加一个事件处理函数，即使这个元素是以后再添加进来的<br>
			delegate(selector,[type],[data],fn) 指定的元素（属于被选元素的子元素）添加一个或多个事件处理程序，并规定当这些事件发生时运行的函数<br>
			on(events,[selector],[data],fn) 在选择元素上绑定一个或多个事件的事件处理函数<br>
			差别:<br>
			.bind()是直接绑定在元素上<br>
			.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的，绑定到document DOM节点上。和.bind()的优势是支持动态数据。<br>
			.delegate()则是更精确的小范围使用事件代理，性能优于.live()<br>
			.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制<br>
		</p>
		<p>
			.JQuery一个对象可以同时绑定多个事件，这是如何实现的？<br>
			$ele.on('eventName', handle1);<br>
			$ele.on('eventName', handle2);<br>
			$ele.on('eventName', handle3);<br>
			其实$ele元素的eventName事件有一个处理函数数组 监听一次就往里面放一个handle， 数组是先进后出型的也就是栈， 然后触发事件的时候一次执行<br>		
			上面的监听相当于<br>		
			$ele.eventHandle['eventName'] = [];<br>
			$ele.eventHandle['eventName'].push(handle1);<br>
			$ele.eventHandle['eventName'].push(handle2);<br>
			$ele.eventHandle['eventName'].push(handle3);<br>
			然后$ele.trigger('eventName')触发的时候， 从栈里面取出处理函数执行<br>
			while($ele.eventHandle['eventName'].length) {<br>
			    handle = $ele.eventHandle['eventName'].pop();<br>
			    handle();<br>
			}<br>
			最先监听的最后执行<br>
		</p>
		<p>
			Javascript MVC框架有：Ember.js、Backbone.js、Knockout.js、Spine.js、Batman.js 和 Angular.js等。(看看, 不用作答)<br>
			知道各种JS框架(Angular, Backbone, Ember, React, Meteor, Knockout...)么? 能讲出他们各自的优点和缺点么?<br>
			
		</p>

		
	</body>
</html>
